var obj = {
    hi(){
        console.log(this+'+++');
        return () =>{
            // 返回值是函数，高阶函数
            // 以方法调用的函数中 this 指向当前对象
            // 以函数调用 this 指向全局
            console.log(this+'0000');
        }
    },
    //普通函数有 this , 箭头函数没有 this
    sayHi() {
        return function(){
        console.log(this);
        return () =>{
            console.log(this+'-----');
        }
      }
    },
    // 箭头函数 this 是外部的this
    // obj对象中的this,指向全局
    say:()=>{
        console.log(this+'-----');
    }
}

var func = obj.hi;  //普通函数执行
var func1=func();  //window
func1();   //window
// 指定this，并且返回一个新的函数
// bind 为了稍后执行而准备，异步
func.bind(obj)()();   //object
